#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<string.h>
void* my_memset(void* dest, int c, size_t count)
{
	assert(dest);
	void* ret = dest;//记住初始位置
	while (count--)
	{
		*(char*)dest = c;  //赋值
		dest = (char*)dest + 1;  //向后移动
	}
	return ret;
}
int main()
{
	char arr1[] = "hello csdn";

	my_memset(arr1 + 1, 'x', 4);
	//memset(arr1+1, 'x', 4);//以字节为单位
	printf("%s\n", arr1);
	return 0;
}
//int main()
//{
//	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int arr2[20] = { 0 };
//	memcpy(arr2, arr1, 20);//从arr1中拷贝20个字节大小的数据到arr2中
//	int i = 0;
//	for (i = 0; i < 20; i++)
//	{
//		printf("%d ", arr2[i]);
//	}
//	printf("\n\n\n");
//	return 0;
//}
//模拟实现内存函数memcmp
//int my_memcmp(const void* ptr1, const void* ptr2, size_t num)
//{
//	//断言
//	assert(ptr1 && ptr2);
//	while (num--&&*(char*)ptr1==*(char*)ptr2)
//	{
//		ptr1 = (char*)ptr1 + 1;
//		ptr2 = (char*)ptr2 + 1;
//	}
//	return (*(char*)ptr1-*(char*)ptr2);
//}
//int main()
//{
//	int arr1[] = { 1,2,3,4 };
//	int arr2[] = { 1,2,3,5 };
//	//int ret=memcmp(arr1, arr2,16);
//	int ret = my_memcmp(arr1, arr2, 20);
//	if (ret == 0)
//		printf("等于\n");
//	else if (ret < 0)
//		printf("小于\n");
//	else
//		printf("等于\n");
//	//printf("%d\n", ret);
//	return 0;
//}